package com.example.gulimall.seckill.scheduled;

import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;


//@EnableScheduling
@Component
//@EnableAsync
public class HelloScheduled {

    /*
        开启一个定时任务
        Spring中只能指定六位
        周的位置 1-7对应周一到周日

        定时任务不应该阻塞！！(他死了其他的也要正常执行！) 比如每秒打印一次 sleep(3000)会导致他每四秒执行一次
        方法：
            1和2的自动配置类 TaskSchedulingAutoConfiguration
            1. 让业务以异步的方式自己提交到线程池
            2. 支持定时任务线程池 设置TaskScheduling即可

            3的自动配置类 TaskExecutionAutoConfiguration
            3. 让定时任务异步执行
                1. EnableAsyc开启异步任务(在类上) 在方法上标注Asyc


        使用异步+定时任务来解决定时任务不阻塞
     */
    @Async
    @Scheduled(cron = "* * * * * ?")
    public void hello(){

    }
}
